package com.wuhong.service.impl;

//import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.wuhong.result.ResultData;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper;
import com.wuhong.entity.Accounts;
import com.wuhong.mapper.AccountsMapper;
import com.wuhong.service.AccountsService;

import java.util.List;

/**
 * 账号表;(accounts)表服务实现类
 * @author : http://www.chiner.pro
 * @date : 2022-12-2
 */
@Service
public class AccountsServiceImpl implements AccountsService{
    @Autowired
    private AccountsMapper accountsMapper;
    
//    /**
//     * 通过ID查询单条数据
//     *
//     * @param id 主键
//     * @return 实例对象
//     */
//    public Accounts queryById(String id){
//        return accountsMapper.selectById(id);
//    }
//
//    /**
//     * 分页查询
//     *
//     * @param accounts 筛选条件
//     * @param current 当前页码
//     * @param size  每页大小
//     * @return
//     */
//    public Page<Accounts> paginQuery(Accounts accounts, long current, long size){
//        //1. 构建动态查询条件
//        LambdaQueryWrapper<Accounts> queryWrapper = new LambdaQueryWrapper<>();
//        if(StrUtil.isNotBlank(accounts.getAccount())){
//            queryWrapper.eq(Accounts::getAccount, accounts.getAccount());
//        }
//        if(StrUtil.isNotBlank(accounts.getPassword())){
//            queryWrapper.eq(Accounts::getPassword, accounts.getPassword());
//        }
//        if(StrUtil.isNotBlank(accounts.getStaffId())){
//            queryWrapper.eq(Accounts::getStaffId, accounts.getStaffId());
//        }
//        //2. 执行分页查询
//        Page<Accounts> pagin = new Page<>(current , size , true);
//        IPage<Accounts> selectResult = accountsMapper.selectByPage(pagin , queryWrapper);
//        pagin.setPages(selectResult.getPages());
//        pagin.setTotal(selectResult.getTotal());
//        pagin.setRecords(selectResult.getRecords());
//        //3. 返回结果
//        return pagin;
//    }
//
//    /**
//     * 新增数据
//     *
//     * @param accounts 实例对象
//     * @return 实例对象
//     */
//    public Accounts insert(Accounts accounts){
//        accountsMapper.insert(accounts);
//        return accounts;
//    }
//
//    /**
//     * 更新数据
//     *
//     * @param accounts 实例对象
//     * @return 实例对象
//     */
//    public Accounts update(Accounts accounts){
//        //1. 根据条件动态更新
//        LambdaUpdateChainWrapper<Accounts> chainWrapper = new LambdaUpdateChainWrapper<Accounts>(accountsMapper);
//        if(StrUtil.isNotBlank(accounts.getAccount())){
//            chainWrapper.eq(Accounts::getAccount, accounts.getAccount());
//        }
//        if(StrUtil.isNotBlank(accounts.getPassword())){
//            chainWrapper.eq(Accounts::getPassword, accounts.getPassword());
//        }
//        if(StrUtil.isNotBlank(accounts.getStaffId())){
//            chainWrapper.eq(Accounts::getStaffId, accounts.getStaffId());
//        }
//        //2. 设置主键，并更新
//        chainWrapper.set(Accounts::getId, accounts.getId());
//        boolean ret = chainWrapper.update();
//        //3. 更新成功了，查询最最对象返回
//        if(ret){
//            return queryById(accounts.getId());
//        }else{
//            return accounts;
//        }
//    }
//
//    /**
//     * 通过主键删除数据
//     *
//     * @param id 主键
//     * @return 是否成功
//     */
//    public boolean deleteById(String id){
//        int total = accountsMapper.deleteById(id);
//        return total > 0;
//    }

    @Override
    public Accounts queryById(String id) {
        return null;
    }

    @Override
    public Page<Accounts> paginQuery(Accounts accounts, long current, long size) {
        return null;
    }

    @Override
    public Accounts insert(Accounts accounts) {
        return null;
    }

    @Override
    public Accounts update(Accounts accounts) {
        return null;
    }

    @Override
    public boolean deleteById(String id) {
        return false;
    }

    @Override
     public ResultData login(Accounts accounts) {
         QueryWrapper<Accounts> userQueryWrapper = new QueryWrapper<>(accounts);
         List<Accounts> users = accountsMapper.selectList(userQueryWrapper);

         ResultData resultData = new ResultData();
         if (users != null && users.size() == 1) {
             resultData.setSuccess(true);
             resultData.setData(users.get(0));
             resultData.setMsg("登录成功!");
         } else {
             resultData.setSuccess(false);
             resultData.setMsg("登录失败!,登录信息有误!");
         }
         return resultData;
     }
 }